Adequate number of input samples, varying service demands and heterogeneous hardware architectures are a major challenge to performance prediction of applications. Performance estimation of most applications are typically performed using load/stress testing techniques. This involves a rather long and arduous process of requirements gathering, test scripting, virtual user generation, test running, test validation and analysis. Moreover, near production deployment environments are needed which are impractical in many cases. Standard tools such as HP Loadrunner and IBM® Rational® Performance Tester, employed in the industry, involve expensive licensing costs. Depending upon the complexity of the applications, it may entail 4 to 12 weeks to run such tests in industrial settings. A significant portion of time is taken in generating accurate scripts that involves recording transactions, encoding unique visitors and enabling large data pools to be fed into a chosen testing platform. Moreover, tests need to be run long enough, repeated and validated in order to be accurate. Such lengthy timelines for performance assurance are not ideal, especially in conjunction with DevOps and agile delivery paradigms which are of focus engineering today.
The alternatives such as queuing analysis and Mean Value Analysis (MVA) algorithms need accurate sample points. As service demand or time needed to process one request by CPU/Disk/Network varies with workload, unless the MVA is accurately fed a number of inputs, performance prediction cannot be accurate. To make the prediction accurate, load tests at higher concurrency would have to be incorporated.